package com.springdemo.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 通用响应类，用于封装接口返回数据。
 */
@Data
@NoArgsConstructor // 生成无参构造方法
@AllArgsConstructor // 生成全参构造方法
public class Result {
    private Integer code; // 响应状态码，1 代表成功，0 代表失败
    private String msg;   // 响应信息，用于描述操作结果
    private Object data;  // 返回的数据，可以是任意类型的结果

    /**
     * 创建一个表示成功的响应对象（无数据返回）。
     *
     * @return 成功的 Result 对象
     */
    public static Result success() {
        return new Result(1, "success", null);
    }

    /**
     * 创建一个表示成功的响应对象，并附带数据。
     *
     * @param data 返回的数据
     * @return 成功的 Result 对象
     */
    public static Result success(Object data) {
        return new Result(1, "success", data);
    }

    /**
     * 创建一个表示失败的响应对象，并附带错误信息。
     *
     * @param msg 错误信息
     * @return 失败的 Result 对象
     */
    public static Result error(String msg) {
        return new Result(0, msg, null);
    }
}
